package com.screen.screendisplay.service.coal;

import com.screen.screendisplay.entity.coal.CoalProdoperOutput;
import com.screen.screendisplay.vo.coal.CoalOutputVO;
import com.screen.screendisplay.vo.coal.CoalOutputUnitsVO;
import com.screen.screendisplay.vo.coal.CoalOutputTrendVO;
import com.screen.screendisplay.vo.wholeproduct.CoalOutputCompletionVO;
import com.screen.screendisplay.vo.wholeproduct.MonthlyOutputCompletionVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 生产经营煤炭产量表 服务类
 * </p>
 *
 * @author xuesong
 * @since 2025-08-23
 */
public interface CoalProdoperOutputService extends IService<CoalProdoperOutput> {

    /**
     * 获取煤炭产量数据
     * @param year 年份，如果为null则使用当前年份
     * @return 煤炭产量VO
     */
    CoalOutputVO getCoalOutput(Integer year);

    /**
     * 获取各单位煤炭产量完成情况
     * @param year 年份，如果为null则使用当前年份
     * @return 各单位煤炭产量列表
     */
    List<CoalOutputUnitsVO> getCoalOutputByUnits(Integer year);

    /**
     * 获取煤炭产量完成趋势
     * @param year 年份，如果为null则使用当前年份，返回最近5年数据
     * @return 煤炭产量趋势列表
     */
    List<CoalOutputTrendVO> getCoalOutputTrend(Integer year);

    /**
     * 获取煤炭产量完成情况
     * @param year 年份，如果为null则使用当前年份
     * @return 煤炭产量完成情况VO
     */
    CoalOutputCompletionVO getCoalOutputCompletion(Integer year);

    /**
     * 获取月度煤炭产量完成情况
     * @param year 年份，如果为null则使用当前年份，返回最近12个月数据
     * @return 月度煤炭产量完成情况列表
     */
    List<MonthlyOutputCompletionVO> getMonthlyOutputCompletion(Integer year);

}
